package cn.edu.sgu.www.pms.mapper;

import cn.edu.sgu.www.pms.entity.Permission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Set;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
@Repository
public interface PermissionMapper extends BaseMapper<Permission> {

    /**
     * 查询非匿名权限列表
     * @return List<Permission>
     */
    List<Permission> selectPermissions(@Param("serviceId") Integer serviceId);

    /**
     * 通过用户名查询用户的权限
     * @param username 用户名
     * @param serviceId 应用ID
     * @return Set<String>
     */
    Set<String> selectUserPermissions(
            @Param("username") String username,
            @Param("serviceId") Integer serviceId
    );

    /**
     * 分页查询角色的权限列表
     * @param page 分页参数
     * @param roleId 角色ID
     * @return Page<Permission>
     */
    Page<Permission> selectPageByRoleId(Page<Permission> page, @Param("roleId") Integer roleId);
}